package modelo;

import org.jdom.Element;

import excepciones.XMLUnserializeException;

public class MejoresTiempos {
	
	public static final int CANTIDAD_DE_MEJORES_TIEMPOS = 10;
	
	private long mejoresTiempos[];
	private String nombres[];
	
	/**
	 * Se crea una tabla de mejores tiempos de prueba.
	 */
	public MejoresTiempos(){
		mejoresTiempos = new long[CANTIDAD_DE_MEJORES_TIEMPOS];
		nombres = new String[CANTIDAD_DE_MEJORES_TIEMPOS];
		for (int i=0; i<CANTIDAD_DE_MEJORES_TIEMPOS; i++){
			mejoresTiempos[i] = 900000;
			nombres[i] = "Nachito";
		}
	}
	
	/**
	 * Se crea una tabla de mejores tiempos a partir del elemento xml recibido.
	 */
	public MejoresTiempos(Element xmlElement) throws XMLUnserializeException {
		mejoresTiempos = new long[CANTIDAD_DE_MEJORES_TIEMPOS];
		nombres = new String[CANTIDAD_DE_MEJORES_TIEMPOS];
		
		/*******************************/
		/*******************************/
	}
	
	public Element toXML() {	
		return null;
		/*******************************/
		/*******************************/
	}	
	
    void agregar(String nombre, long tiempo){
    	int i = CANTIDAD_DE_MEJORES_TIEMPOS - 1;
//    	System.out.print("---------------------------------------");
//    	System.out.print("nombre: ");
//		System.out.println(nombre);
//		System.out.print("tiempo: ");
//		System.out.println(tiempo);
//		System.out.print("i: ");
//		System.out.println(i);
//		
//		System.out.print("mejoresTiempos[i]: ");
//		System.out.println(mejoresTiempos[i]);
		
		
    	while ((i >= 0) && (tiempo < mejoresTiempos[i])){
    		if (i != CANTIDAD_DE_MEJORES_TIEMPOS - 1){
    			mejoresTiempos[i+1] = mejoresTiempos[i];
    			nombres[i+1] = nombres[i];
    		}
    		i--;	
    	}
    	mejoresTiempos[i+1] = tiempo;
		nombres[i+1] = nombre;
    }
    
    long getTiempoNumero(int numeroDeTiempo){
    	return mejoresTiempos[numeroDeTiempo];
    }
    
    String getNombreNumero(int numeroDeTiempo){
    	return nombres[numeroDeTiempo];
    }
/******/ // para las pruebas    
    void imprimir(){
    	System.out.println("mejoresTiempos: ");
    	for (int i = 0; i< CANTIDAD_DE_MEJORES_TIEMPOS; i++){
    		System.out.print(nombres[i]);
    		System.out.print("           ");
    		System.out.println(mejoresTiempos[i]);
    	}
    }
}
